TypeScript 从不类型
当我们在 if
或 switch
中做了彻底的类型区分时,我们可以使用 never
类型来确保这个类型区分一直是彻底的:
type Shape = Circle | Square;
function getArea(shape: Shape) {
switch (shape.kind) {
case "circle":
return Math.PI * shape.radius ** 2;
case "square":
return shape.sideLength ** 2;
default:
const _exhaustiveCheck: never = shape;
return _exhaustiveCheck;
}
}
这个类型也用于不会返回值的函数,也即它们总是抛出错误或中止程序。